package com.ph.shopping.facade.permission.service;

import java.util.List;

import com.ph.shopping.common.core.exception.BizException;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.permission.entity.WarehouseAddress;
import com.ph.shopping.facade.permission.vo.WarehouseAddressVo;

/**
 * 
 * @项目：phshopping-facade-permission
 *
 * @描述：仓库地址接口
 *
 * @作者： liuy
 *
 * @创建时间：2017年3月27日
 *
 * @Copyright @2017 by liuy
 */
public interface IWarehouseAddressService {

    /**
     * 分页获取仓库地址列表
     * @param pageIndex 当前页码
     * @param pageSize 每页条数
     * @param warehouseAddressVo 查询条件
     * @return List<WarehouseAddressVo>
     */
    public Result getWarehouseAddressVoPageList(PageBean page,WarehouseAddressVo warehouseAddressVo) throws BizException;
    
    /**
     * 获取仓库地址列表
     * @param warehouseAddressVo 查询条件
     * @return List<WarehouseAddressVo>
     */
    public List<WarehouseAddressVo> getWarehouseAddressVoList(WarehouseAddress warehouseAddress) throws BizException;

    /**
     * 新增仓库地址
     * @param warehouseAddress 仓库地址
     * @return Result
     */
    public Result addWarehouseAddress(WarehouseAddress warehouseAddress) throws BizException;

    /**
     * 修改仓库地址
     * @param warehouseAddress 仓库地址
     * @return Result
     */
    public Result updateWarehouseAddress(WarehouseAddress warehouseAddress) throws BizException;

    /**
     * 删除仓库地址
     * @param warehouseAddress 仓库地址
     * @return Result
     */
    public Result batchDeleteWarehouseAddress(List<Long> list) throws BizException;

    /**
     * 通过id获取仓库地址详情
     * @param warehouseAddressVo 查询条件
     * @return WarehouseAddressVo
     */
    public WarehouseAddressVo getWarehouseAddressVoDetail(WarehouseAddressVo warehouseAddressVo) throws BizException;
    
    /**
     * 根据Id查询仓库地址
     * @param warehouseAddress 仓库地址
     * @return WarehouseAddress
     */
	public WarehouseAddress getWarehouseAddressById(WarehouseAddress warehouseAddress) throws BizException;

    /**
     * 设置仓库地址为默认地址
     * @param warehouseAddress 仓库地址
     */
	public void updateWarehouseDefault(WarehouseAddress warehouseAddress) throws BizException ;

    /**
     * 设置仓库地址为提货点
     * @param warehouseAddress 仓库地址
     */
	public void updateWarehouseDeliveryPoint(WarehouseAddress warehouseAddress) throws BizException ;
}
